﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StyleMVVM.DependencyInjection.Impl
{
	/// <summary>
	/// Attributes that implement will be called at discovery time to provide a EnrichWithDelegate
	/// </summary>
	public interface IEnrichWithAttribute
	{
		/// <summary>
		/// Provides an EnrichWithDelegate for an attributed type
		/// </summary>
		/// <param name="attributedType"></param>
		/// <param name="priority"></param>
		/// <returns></returns>
		EnrichWithDelegate ProvideDelegate(Type attributedType, out int priority);
	}
}
